#include "Com_tcp.h"
#include "Com_format.h"
#include <stdbool.h>
/**
 * @msg:指令发送
 * @param {int} sockfd 连接套接字
 * @param {char} *COM 封装后的指令
 * @return {*} 成功返回 1 ； 失败返回 -1
 */
int datasend(int sockfd,const char *COM)
{
    if(NULL == COM)
    {
        printf("the send com is empty\n");
        return -1;
    }

    //解析数据头，得到数据的大小
    struct head H;
    unPackCmdHead(&H,COM);
    //发送数据
    int ret = 0;
    ret = write(sockfd,COM,H.size+13);
    if(-1 == ret)
    {
        perror("write");
        return -1;
    }
    return 1;
}

/**
 * @msg: 发送第一个标识信号
 * @param {int} 连接套接字
 * @return {*} 成功返回true，失败返回false
 */
bool firstsignal(int sockfd)
{
    char *cmd = (char *)malloc(13);
    if (NULL == cmd)
    {
        return false;
    }
    char *m = cmd;

    int top = COM_TOP;
    memcpy((void *)cmd, (void *)&top, 4);
    cmd += 4;

    long long data_size = 0;
    memcpy((void *)cmd, (void *)&data_size, 8);
    cmd += 8;

    enum COM_CMD_TYPE one = REQUST;
    char c = one;
    memcpy((void *)cmd, (void *)&c, 1);
    cmd = m;
    write(sockfd, cmd, 13);
    free(cmd);
    return true;
}
